/**
 * @description: 字典列表
 */
import { BasicPageParams } from '@/api/model/baseModel'
import { setMpAppletReleaseBatch } from '@/api/system'

export interface SystemDictionaryParams {
  dictName: string
}
/**
 * @description: 字典详情
 */
export interface SystemDictionaryDetailParams {
  dictName: string
  remark: string
  type: number
}
/**
 * @description: 资源列表
 */
export interface SystemAuthorityParams {
  type: number
}
/**
 * @description: 资源详情
 */
export interface SystemAuthorityDetailParams {
  id: number
  resourceName: string
  description: string
  remark: string
  resourceType: number | string
  parentId: number
  platformType: number
}

/**
 * @description: 角色/版本列表
 */
export interface SystemRoleParams extends BasicPageParams {
  id: number // 类型：1-运营角色；2-店铺角色；3-店铺岗位角色
  roleType: number // 类型：1-运营角色；2-店铺角色；3-店铺岗位角色
  roleId: number // 角色/版本名称
  roleName: string // 描述
  roleStatus: number // 角色状态：0-禁用；1-启用
  isSuper?: number //超级权限：0-不是；1-具有超级角色
  storeDefault?: number //是否是店铺默认版本：0-否；1-是
  roleStore?: number //全部店铺：0-否；1-是
  resourceNameList?: string[] // 模块权限
  key?: number
  value?: number
  label?: string
}
/**
 * @description: 角色/版本详情
 */
export interface SystemRoleDetailParams {
  id: number //角色ID 修改时必填
  roleName: string //角色名称
  roleDesc: string //描述
  roleStatus: number //角色状态：0-禁用；1-启用
  roleType: number //类型：1-运营角色；2-店铺版本角色；3-商家岗位角色
  resourceIds: number[] //权限ID列表
}
/**
 * @description: 员工列表
 */
export interface SystemStaffParams extends BasicPageParams {
  id: number
  operatorId: number // 用户ID
  operatorName: string // 姓名
  operatorMobile: string // 手机号
  startDate: string // 开始时间
  endDate: string // 结束时间
  departmentId: number // 部门ID
  roleId: number // 角色ID
  operatorStatus: number // 状态：1-启用；0-冻结； -1-全部
  label?: string
  value?: number
}
/**
 * @description: 员工详情
 */
export interface SystemStarrDetail extends SystemStaffParams {
  id: number // 用户ID
  roleIdList?: number[] // 角色ID组
  roleNameList?: string[] // 角色名称组
  departmentName?: string // 部门名称
}
/**
 * @description: 部门
 */
export interface SystemDepartment {
  id: string // 用户ID
  value: string // 用户ID
  deptName: string // 部门名称
  label: string // 部门名称
  parentId: string // 父节点ID
}

export interface MpBindParams {
  code: string
  companyName: string
}

export interface MpListParams {
  appletName: string
  principalName: string
  userName: string
  appId: string
  appletStatus: 1 | 2 | 3
  appletChannel: string
}

export interface MpListModel extends MpListParams {
  headImg: string
  createdAt: string
  appletUserVersion: string
  appletTemplateId: number
  latestTemplateId: number
  appletAdmin: string
  loading?: boolean
}

export interface MpVersionListModel {
  id: string
  userVersion: string
  userDesc: string
  templateId: number
  versionEnv: number
  experienceStatus: number
  publishedAccountName: string
  publishedAccountMobile: string
  publishedAt: string
  experiencePath: string
  publishedStatus: number
  versionStatus?: number
  versionRemark?: string
  commitTime?: string
  appVersion?: number
}

export interface MpExperienceParams {
  id: string
  experiencePath?: string
}

export interface MpAppletReleaseParams {
  id: string
  userVersion: string
  userDesc: string
}

export interface MpVersionAuditingListParams {
  templateId?: number
  versionStatus?: number
  companyName?: string
}

export interface MpAppletReleaseBatchParams {
  templateId: number
  appIdList: string[]
}

export interface MpAppletUserVersionParams {
  appId: string
}

export interface MpAppletVersionRollbackParams {
  userVersion: string
  companyName: string
}
